import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { DownloadService } from './download.service';
import { UseClassLoggerService, UseValueLoggerService, UseFactoryLoggerService ,UseValueLoggerServiceStringToken} from './logger.service';

@Module({
  imports: [],
  controllers: [AppController],//控制器
  providers: [ // 提供者 注册
    AppService,
    DownloadService,
    {
      provide: UseClassLoggerService,//Token类型 标志
      useClass: UseClassLoggerService, //注册的是一个类
    },
    {
      provide: UseValueLoggerService,//Token类型 标志
      useValue: new UseValueLoggerService(), // new一个实例
    },
    {
      provide: "StringToken",//Token类型 可以写成字符串
      useValue: new UseValueLoggerServiceStringToken(), // new一个实例
    },
    {
      provide: UseFactoryLoggerService,//Token类型 标志
      useFactory: ()=> new UseFactoryLoggerService(), //工厂是个函数，返回一个实例
    }
  ],
})
export class AppModule { }
